package com.zmn.mcc.business.interfaces.dpermit.channel;

import com.zmn.mcc.model.dto.dpermit.DpermitBaseDO;
import com.zmn.mcc.model.dto.dpermit.DpermitCountDO;
import com.zmn.mcc.model.dto.dpermit.DpermitSimpleDO;
import com.zmn.mcc.model.entity.dept.McDeptDpermit;

import java.util.List;

/**
 * @author heguanghua
 * @since 2020/05/26 16:34
 */
public interface DpermitChannelBService {

    /**
     * 取得值的一级渠道及其下级渠道的列表
     * @param oneChannelIds 一级渠道ID集合
     * @return
     */
    List<McDeptDpermit> listDpermitForSelfAndSub(List<Integer> oneChannelIds);

    /**
     * 取得全部下单平台及其一级渠道列表
     * 已有下单平台数据权限则置为选中
     * @param status
     * @param dpermitChannels 已有数据权限的平台/渠道集合
     * @return
     */
    List<DpermitSimpleDO> listChannelAndDpermitChecked(Integer status, List<? extends DpermitBaseDO> dpermitChannels);

    /**
     * 取得全部下单平台列表
     * 已检查并处理简单数据对象选中状态
     * @param status
     * @param dpermitIds 已有的数据权限(平台标识)
     * @param dpermitCounts 已有的下级数据权限数量集合<data_parent_id,count(data_id)>
     * @return
     */
    List<DpermitSimpleDO> listChannelPlatAndDpermitChecked(Integer status, List<Integer> dpermitIds, List<DpermitCountDO> dpermitCounts);
}
